import java.util.Arrays;

class Solution {
    public int triangleNumber(int[] nums) {
        int len = nums.length;
        // 判断是否能组成三角形
        if(len < 3) {
            return 0;
        }
        // 对数组进行排序
        Arrays.sort(nums);
        int sum = 0;
        for(int k = len - 1; k > 1; k--) {
            int left = 0;
            int right = k - 1;
            while(left < right) {
                if(nums[left] + nums[right] <= nums[k]) {
                    left++;
                } else if(nums[left] + nums[right] > nums[k]) {
                    sum += (right - left );
                    right--;
                }
            }
        }
        return sum;
    }
}